;IMPBBN.A;3 22-NOV-72 13:58:08 EDIT BY CHIPMAN TITLE IMPTST SUBTTL SENDS MESSAGES TO SELF VIA IMPSYS BARE==0 DEC==1 TENEX==2 ;INSTALLATION-SPECIFIC ASSEMBLY PARAMETERS ********************** ;WHAT KIND OF SYSTEM AM I RUNNING UNDER? * SYSTEM==TENEX ; * ;IMP DEVICE CODE * IMP=^O550 ; * ;ECU BETTEN HERE AND THE IMP * ECU==1 ; * ;MY NETWORK ADDRESS * ADRES==^O263 ; * ;**************************************************************** ;SYSTEM CALL DEFINITIONS IFE SYSTEM-TENEX,< SEARCH STENEX > ;LINK NUMBER TO BE USED LINK==^O340 LINK2==LINK+1 ;INPUT BUFFER SIZE INSIZ==^D225 STKSIZ==^D50 ;PUSH DOWN LIST SIZE QUESIZ==^D10 ;SIZE OF OUTGOING MESSAGE QUEUE CP=17 ;STACK POINTER ;OTHER AC'S BLOCKI=-1>-1>-1 WHICH=-1>-1>-1>-1>-1 ;CONO BITS CLRERR==200000 MAK10D==100000 STPOUT==40000 ENDOUT==20000 GOTEND==10000 ENBEND==4000 ENBOUT==200 ENBIN==10 ;CONI BITS PWRUP==200000 DOWN10==100000 ERR==40000 IMPDWN==20000 ENDIN==14000 EMPTY==200 FULL==10 IFE SYSTEM-BARE, ;DEFINE TTY OUTPUT MACROS IN CASE NOT 10-50 IFE SYSTEM-BARE, DEFINE OUTCHR > IFE SYSTEM-TENEX, DEFINE OUTCHR > ;MACRO TO PUT A MESSAGE ON THE OUTGOING QUEUE DEFINE POQ (WORD) DEFINE EROR (STRING) <[PUSH CP, 0 PUSH CP, 1 OUTSTR <[ASCIZ/ STRING /]> PUSHJ CP, PHEADR POP CP, 1 POP CP, 0 JRST .+1]> ;IF RUNNING UNDER 10-50, CALL TRPSET START: IFE SYSTEM-TENEX, HALTF]> IFE SYSTEM-DEC, EXIT]> IFE SYSTEM-BARE, MOVE CP, [IOWD STKSIZ, STACK] OUTSTR<[ASCIZ/ IMP TESTER /]> CONO IMP, MAK10D+ENBEND+ENBOUT+ENBIN ;NOW WAIT FOR THE IMP TO SEE THAT YOU ARE DOWN IFN SYSTEM-DEC, IFE SYSTEM-DEC, ;INITIALIZE QUEUE POINTERS MOVE QP, [IOWD QUESIZ, QUEUE] MOVE OFFQ, QP ;INITIALIZE THE INTERFACE IFN ECU, < CONO IMP, ;F2 with ECU needs this! IFN SYSTEM-DEC, IFE SYSTEM-DEC, > DATAI IMP, 0 CONO IMP, CLRERR+ENDOUT+GOTEND ;PUT 4 NOPS ON THE OUTGOING MESSAGE QUEUE MOVEI 1, 4 NOPLOP: POQ <[IOWD 1, NOPMES]> SOJG 1, NOPLOP ;CLEAR BOTH SEQUENCE COUNTERS SETZM MESC1 SETZM MESC2 ;QUEUE BOTH MAIN MESSAGES POQ IOWD1 POQ IOWD2 ;SET UP RETURN POINTERS TO POINT TO THE BEGINNING OF THE ;INPUT AND OUTPUT ROUTINES MOVEI INAC, STRTIN MOVEI OUTAC, STARTO MOVSI TIME, 40 BCKGND: CONI IMP, CONDS ;BACKGROUND LOOP TESTS WHETHER TRNE CONDS, FULL ;INPUT WANTS SERVICE JRST (INAC) TRNE CONDS, EMPTY ;OR OUTPUT WANTS SERVICE JRST (OUTAC) TIMCNT: MOVE 1, MESC1 ;NOW TEST WHETHER SEQUENCE COUNTS SUB 1, MESC2 ;DIFFER BY MORE THAN 1, TO CHECK JUMPL 1, STEP ;FOR DROPPED RFNMS SOJG 1, STEP ;NOW TEST VARIOUS INTERFACE ERROR CONDITIONS TRNN CONDS, PWRUP JRST [OUTSTR <[ASCIZ/ NO POWER ON INTERFACE/]> JRST START] TRNE CONDS, IMPDWN JRST [OUTSTR <[ASCIZ/ IMP IS DOWN/]> JRST START] TRNE CONDS, ERR JRST [OUTSTR <[ASCIZ/ IMP WAS DOWN ERROR /]> CONO IMP, CLRERR HRRZI TIME, 100000 ;TIME OUT QUICKLY AFTER "IMP WAS DOWN" JRST BCKGND] SOJG TIME, BCKGND ;TOO LONG SINCE THE LAST MESSAGE? JRST EROR